[INFO] fetching crate pi_download 0.2.0...
[INFO] checking pi_download-0.2.0 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate pi_download 0.2.0 into /workspace/builds/worker-2-tc1/source
[INFO] validating manifest of crates.io crate pi_download 0.2.0 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate pi_download 0.2.0
[INFO] finished tweaking crates.io crate pi_download 0.2.0
[INFO] tweaked toml for crates.io crate pi_download 0.2.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pi_slot_deque v0.2.1
[INFO] [stderr]   Downloaded pi_async_file v0.5.0
[INFO] [stderr]   Downloaded pi_slot_wheel v0.2.0
[INFO] [stderr]   Downloaded pi_enum_default_macro v0.1.0
[INFO] [stderr]   Downloaded pi_share v0.4.15
[INFO] [stderr]   Downloaded pi_time v0.3.4
[INFO] [stderr]   Downloaded pi_timer v0.1.0
[INFO] [stderr]   Downloaded st3 v0.4.1
[INFO] [stderr]   Downloaded pi_cancel_timer v0.2.0
[INFO] [stderr]   Downloaded pi_wheel v0.1.0
[INFO] [stderr]   Downloaded pi_ext_heap v0.1.1
[INFO] [stderr]   Downloaded pi_wrr v0.1.1
[INFO] [stderr]   Downloaded pi_hash v0.1.1
[INFO] [stderr]   Downloaded pi-async-rt v0.1.18
[INFO] [stderr]   Downloaded pi_rt_file v0.3.0
[INFO] [stderr]   Downloaded pi_async_httpc v0.5.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b058bb668fd42972f18cfd36a65d601b73af791377929a7f536f27ad175776a8
[INFO] running `Command { std: "docker" "start" "-a" "b058bb668fd42972f18cfd36a65d601b73af791377929a7f536f27ad175776a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b058bb668fd42972f18cfd36a65d601b73af791377929a7f536f27ad175776a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b058bb668fd42972f18cfd36a65d601b73af791377929a7f536f27ad175776a8", kill_on_drop: false }`
[INFO] [stdout] b058bb668fd42972f18cfd36a65d601b73af791377929a7f536f27ad175776a8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f2b1779c626d97345f1de59058a31c9328c91ab5747074404b73d9095ee41ba9
[INFO] running `Command { std: "docker" "start" "-a" "f2b1779c626d97345f1de59058a31c9328c91ab5747074404b73d9095ee41ba9", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling ring v0.17.8
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling unicase v2.7.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling rustls v0.21.10
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]     Checking pi_slot_deque v0.2.1
[INFO] [stderr]    Compiling time-macros v0.2.17
[INFO] [stderr]    Compiling cookie v0.17.0
[INFO] [stderr]     Checking pi_ext_heap v0.1.1
[INFO] [stderr]     Checking pi_slot_wheel v0.2.0
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]     Checking brotli-decompressor v2.5.1
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking raw-cpuid v11.0.1
[INFO] [stderr]     Checking pi_hash v0.1.1
[INFO] [stderr]     Checking pi_wheel v0.1.0
[INFO] [stderr]     Checking psl-types v2.0.11
[INFO] [stderr]     Checking pi_timer v0.1.0
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]     Checking publicsuffix v2.2.3
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking backtrace v0.3.69
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking brotli v3.4.0
[INFO] [stderr]     Checking pi_cancel_timer v0.2.0
[INFO] [stderr]     Checking crossbeam-queue v0.3.11
[INFO] [stderr]     Checking st3 v0.4.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.12
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]     Checking pi_wrr v0.1.1
[INFO] [stderr]     Checking either v1.10.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]     Checking quanta v0.12.2
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking pi_share v0.4.15
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking time v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking openssl v0.10.64
[INFO] [stderr]    Compiling async-stream-impl v0.3.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.57
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking async-stream v0.3.5
[INFO] [stderr]    Compiling pin-project-internal v1.1.4
[INFO] [stderr]    Compiling ctor v0.2.7
[INFO] [stderr]    Compiling pi_enum_default_macro v0.1.0
[INFO] [stderr]     Checking pi_time v0.3.4
[INFO] [stderr]     Checking thiserror v1.0.57
[INFO] [stderr]     Checking pin-project v1.1.4
[INFO] [stderr]     Checking flume v0.10.14
[INFO] [stderr]     Checking native-tls v0.2.11
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking pi-async-rt v0.1.18
[INFO] [stderr]     Checking pi_async_file v0.5.0
[INFO] [stderr]     Checking pi_rt_file v0.3.0
[INFO] [stderr]     Checking bytes v1.5.0
[INFO] [stderr]     Checking serde_json v1.0.114
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking tokio v1.36.0
[INFO] [stderr]     Checking http v0.2.11
[INFO] [stderr]     Checking cookie_store v0.20.0
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking tokio-util v0.7.10
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking async-compression v0.4.6
[INFO] [stderr]     Checking tokio-socks v0.5.1
[INFO] [stderr]     Checking h2 v0.3.24
[INFO] [stderr]     Checking hyper v0.14.28
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking reqwest v0.11.24
[INFO] [stderr]     Checking pi_async_httpc v0.5.3
[INFO] [stderr]     Checking pi_download v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `MultiTaskRuntime`
[INFO] [stdout]    --> src/download.rs:781:9
[INFO] [stdout]     |
[INFO] [stdout] 781 |         MultiTaskRuntime, MultiTaskRuntimeBuilder, StealableTaskPool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicU64`
[INFO] [stdout]    --> src/download.rs:785:9
[INFO] [stdout]     |
[INFO] [stdout] 785 |     use std::sync::atomic::AtomicU64;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime`, `UNIX_EPOCH`
[INFO] [stdout]    --> src/download.rs:790:21
[INFO] [stdout]     |
[INFO] [stdout] 790 |     use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]     |                     ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/download.rs:491:33
[INFO] [stdout]     |
[INFO] [stdout] 491 |                 Ok(mem::replace(&mut vec, vec![]))
[INFO] [stdout]     |                    ------------ ^^^^^^^^ expected `&mut Vec<u8>`, found `&mut Result<..., ...>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Vec<u8>`
[INFO] [stdout]                found mutable reference `&mut Result<std::sync::MutexGuard<'_, Vec<u8>>, PoisonError<std::sync::MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /rustc/158f00a1c5175648af6f6099b075f78d1d014a28/library/core/src/mem/mod.rs:912:14
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 |             s.sender.take()
[INFO] [stdout]     |               ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 104 |             s.unwrap().sender.take()
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/download.rs:491:33
[INFO] [stdout]     |
[INFO] [stdout] 491 |                 Ok(mem::replace(&mut vec, vec![]))
[INFO] [stdout]     |                    ------------ ^^^^^^^^ expected `&mut Vec<u8>`, found `&mut Result<..., ...>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Vec<u8>`
[INFO] [stdout]                found mutable reference `&mut Result<std::sync::MutexGuard<'_, Vec<u8>>, PoisonError<std::sync::MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /rustc/158f00a1c5175648af6f6099b075f78d1d014a28/library/core/src/mem/mod.rs:912:14
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:115:18
[INFO] [stdout]     |
[INFO] [stdout] 115 |             if s.sender.is_some() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 115 |             if s.unwrap().sender.is_some() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 |             s.sender.take()
[INFO] [stdout]     |               ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 104 |             s.unwrap().sender.take()
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:119:15
[INFO] [stdout]     |
[INFO] [stdout] 119 |             s.sender = Some(sender);
[INFO] [stdout]     |               ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 119 |             s.unwrap().sender = Some(sender);
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:115:18
[INFO] [stdout]     |
[INFO] [stdout] 115 |             if s.sender.is_some() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 115 |             if s.unwrap().sender.is_some() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:119:15
[INFO] [stdout]     |
[INFO] [stdout] 119 |             s.sender = Some(sender);
[INFO] [stdout]     |               ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 119 |             s.unwrap().sender = Some(sender);
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/download.rs:514:30
[INFO] [stdout]     |
[INFO] [stdout] 514 |                 utils::write(&mut vec, pos as usize, &buf[..buf_len], 0);
[INFO] [stdout]     |                 ------------ ^^^^^^^^ expected `&mut Vec<u8>`, found `&mut Result<..., ...>`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Vec<u8>`
[INFO] [stdout]                found mutable reference `&mut Result<std::sync::MutexGuard<'_, Vec<u8>>, PoisonError<std::sync::MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/utils.rs:3:8
[INFO] [stdout]     |
[INFO] [stdout] 3   | pub fn write<T: Copy>(vec: &mut Vec<T>, pos: usize, buf: &[T], default_value: T){
[INFO] [stdout]     |        ^^^^^          ----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/download.rs:514:30
[INFO] [stdout]     |
[INFO] [stdout] 514 |                 utils::write(&mut vec, pos as usize, &buf[..buf_len], 0);
[INFO] [stdout]     |                 ------------ ^^^^^^^^ expected `&mut Vec<u8>`, found `&mut Result<..., ...>`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Vec<u8>`
[INFO] [stdout]                found mutable reference `&mut Result<std::sync::MutexGuard<'_, Vec<u8>>, PoisonError<std::sync::MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/utils.rs:3:8
[INFO] [stdout]     |
[INFO] [stdout] 3   | pub fn write<T: Copy>(vec: &mut Vec<T>, pos: usize, buf: &[T], default_value: T){
[INFO] [stdout]     |        ^^^^^          ----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 |             if data.1.len() == 0 {
[INFO] [stdout]     |                     ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:123:22
[INFO] [stdout]     |
[INFO] [stdout] 123 |                 data.0 = pos;
[INFO] [stdout]     |                      ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:124:40
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 utils::write(&mut data.1, 0, &buf[..len], 0);
[INFO] [stdout]     |                                        ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:125:34
[INFO] [stdout]     |
[INFO] [stdout] 125 |             }else if pos >= data.0 { //  && (pos + len as u64) < self.data_limit
[INFO] [stdout]     |                                  ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:127:39
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let pos = (pos - data.0) as usize;
[INFO] [stdout]     |                                       ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:128:40
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 utils::write(&mut data.1, pos, &buf[..len], 0);
[INFO] [stdout]     |                                        ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:157:17
[INFO] [stdout]     |
[INFO] [stdout] 157 |         if data.0 == 0 && data.1.len() as u64 == meta.len() {
[INFO] [stdout]     |                 ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:157:32
[INFO] [stdout]     |
[INFO] [stdout] 157 |         if data.0 == 0 && data.1.len() as u64 == meta.len() {
[INFO] [stdout]     |                                ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:158:46
[INFO] [stdout]     |
[INFO] [stdout] 158 |             return Ok(mem::replace(&mut data.1, vec![]))
[INFO] [stdout]     |                                              ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 |             if data.1.len() == 0 {
[INFO] [stdout]     |                     ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:123:22
[INFO] [stdout]     |
[INFO] [stdout] 123 |                 data.0 = pos;
[INFO] [stdout]     |                      ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:124:40
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 utils::write(&mut data.1, 0, &buf[..len], 0);
[INFO] [stdout]     |                                        ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:125:34
[INFO] [stdout]     |
[INFO] [stdout] 125 |             }else if pos >= data.0 { //  && (pos + len as u64) < self.data_limit
[INFO] [stdout]     |                                  ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:127:39
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let pos = (pos - data.0) as usize;
[INFO] [stdout]     |                                       ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:128:40
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 utils::write(&mut data.1, pos, &buf[..len], 0);
[INFO] [stdout]     |                                        ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `clone` exists for enum `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/download.rs:93:27
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.state.lock().clone()
[INFO] [stdout]    |                           ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::sync::MutexGuard<'_, download::State>: Clone`
[INFO] [stdout]            which is required by `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>: Clone`
[INFO] [stdout]            `PoisonError<std::sync::MutexGuard<'_, download::State>>: Clone`
[INFO] [stdout]            which is required by `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>: Clone`
[INFO] [stdout] note: the method `clone` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]   --> /rustc/158f00a1c5175648af6f6099b075f78d1d014a28/library/core/src/clone.rs:160:5
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.state.lock().expect("REASON").clone()
[INFO] [stdout]    |                          +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:157:17
[INFO] [stdout]     |
[INFO] [stdout] 157 |         if data.0 == 0 && data.1.len() as u64 == meta.len() {
[INFO] [stdout]     |                 ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:157:32
[INFO] [stdout]     |
[INFO] [stdout] 157 |         if data.0 == 0 && data.1.len() as u64 == meta.len() {
[INFO] [stdout]     |                                ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:158:46
[INFO] [stdout]     |
[INFO] [stdout] 158 |             return Ok(mem::replace(&mut data.1, vec![]))
[INFO] [stdout]     |                                              ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:375:15
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.segments[0] = (0..size, true);
[INFO] [stdout]     |               ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.unwrap().segments[0] = (0..size, true);
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `clone` exists for enum `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/download.rs:93:27
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.state.lock().clone()
[INFO] [stdout]    |                           ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::sync::MutexGuard<'_, download::State>: Clone`
[INFO] [stdout]            which is required by `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>: Clone`
[INFO] [stdout]            `PoisonError<std::sync::MutexGuard<'_, download::State>>: Clone`
[INFO] [stdout]            which is required by `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>: Clone`
[INFO] [stdout] note: the method `clone` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]   --> /rustc/158f00a1c5175648af6f6099b075f78d1d014a28/library/core/src/clone.rs:160:5
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.state.lock().expect("REASON").clone()
[INFO] [stdout]    |                          +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:375:15
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.segments[0] = (0..size, true);
[INFO] [stdout]     |               ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.unwrap().segments[0] = (0..size, true);
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `file_size` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:380:15
[INFO] [stdout]     |
[INFO] [stdout] 380 |         state.file_size()
[INFO] [stdout]     |               ^^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `file_size` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 634 |     pub fn file_size(&self) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 380 |         state.expect("REASON").file_size()
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `file_size` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:380:15
[INFO] [stdout]     |
[INFO] [stdout] 380 |         state.file_size()
[INFO] [stdout]     |               ^^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `file_size` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 634 |     pub fn file_size(&self) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 380 |         state.expect("REASON").file_size()
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_range` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:385:15
[INFO] [stdout]     |
[INFO] [stdout] 385 |         state.get_range(self.info.parallel_size)
[INFO] [stdout]     |               ^^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `get_range` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:696:5
[INFO] [stdout]     |
[INFO] [stdout] 696 |     fn get_range(&mut self, parallel_size: usize) -> Range<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 385 |         state.expect("REASON").get_range(self.info.parallel_size)
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:390:18
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if state.sender.is_none() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if state.unwrap().sender.is_none() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_range` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:385:15
[INFO] [stdout]     |
[INFO] [stdout] 385 |         state.get_range(self.info.parallel_size)
[INFO] [stdout]     |               ^^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `get_range` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:696:5
[INFO] [stdout]     |
[INFO] [stdout] 696 |     fn get_range(&mut self, parallel_size: usize) -> Range<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 385 |         state.expect("REASON").get_range(self.info.parallel_size)
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:390:18
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if state.sender.is_none() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if state.unwrap().sender.is_none() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `down_err` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:394:30
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let parallel = state.down_err(r);
[INFO] [stdout]     |                              ^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `down_err` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:641:5
[INFO] [stdout]     |
[INFO] [stdout] 641 |     fn down_err(&mut self, r: &Range<u64>) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let parallel = state.expect("REASON").down_err(r);
[INFO] [stdout]     |                             +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 state.sender.take()
[INFO] [stdout]     |                       ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 state.unwrap().sender.take()
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:411:18
[INFO] [stdout]     |
[INFO] [stdout] 411 |         if state.sender.is_none() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 411 |         if state.unwrap().sender.is_none() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `down_err` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:394:30
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let parallel = state.down_err(r);
[INFO] [stdout]     |                              ^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `down_err` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:641:5
[INFO] [stdout]     |
[INFO] [stdout] 641 |     fn down_err(&mut self, r: &Range<u64>) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let parallel = state.expect("REASON").down_err(r);
[INFO] [stdout]     |                             +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 state.sender.take()
[INFO] [stdout]     |                       ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 state.unwrap().sender.take()
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:411:18
[INFO] [stdout]     |
[INFO] [stdout] 411 |         if state.sender.is_none() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 411 |         if state.unwrap().sender.is_none() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `down_ok` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:414:15
[INFO] [stdout]     |
[INFO] [stdout] 414 |         state.down_ok(r, data_len, now_millisecond() - self.start_time_ms)
[INFO] [stdout]     |               ^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `down_ok` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:655:5
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn down_ok(&mut self, r: &Range<u64>, data_len: usize, duration: u64) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 414 |         state.expect("REASON").down_ok(r, data_len, now_millisecond() - self.start_time_ms)
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `down_ok` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:414:15
[INFO] [stdout]     |
[INFO] [stdout] 414 |         state.down_ok(r, data_len, now_millisecond() - self.start_time_ms)
[INFO] [stdout]     |               ^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `down_ok` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:655:5
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn down_ok(&mut self, r: &Range<u64>, data_len: usize, duration: u64) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 414 |         state.expect("REASON").down_ok(r, data_len, now_millisecond() - self.start_time_ms)
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parallel` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:419:18
[INFO] [stdout]     |
[INFO] [stdout] 419 |         if state.parallel() == 0 {
[INFO] [stdout]     |                  ^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `parallel` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:624:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |     pub fn parallel(&self) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 419 |         if state.expect("REASON").parallel() == 0 {
[INFO] [stdout]     |                 +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:420:19
[INFO] [stdout]     |
[INFO] [stdout] 420 |             state.sender.take()
[INFO] [stdout]     |                   ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 420 |             state.unwrap().sender.take()
[INFO] [stdout]     |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:429:18
[INFO] [stdout]     |
[INFO] [stdout] 429 |         if state.segments.len() == 1 {
[INFO] [stdout]     |                  ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 429 |         if state.unwrap().segments.len() == 1 {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:430:19
[INFO] [stdout]     |
[INFO] [stdout] 430 |             state.last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 430 |             state.unwrap().last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:432:26
[INFO] [stdout]     |
[INFO] [stdout] 432 |             return state.segments[0].0.end != u64::MAX;
[INFO] [stdout]     |                          ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 432 |             return state.unwrap().segments[0].0.end != u64::MAX;
[INFO] [stdout]     |                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:434:18
[INFO] [stdout]     |
[INFO] [stdout] 434 |         if state.last_check_time > now {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 434 |         if state.unwrap().last_check_time > now {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:437:15
[INFO] [stdout]     |
[INFO] [stdout] 437 |         state.last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 437 |         state.unwrap().last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parallel` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:419:18
[INFO] [stdout]     |
[INFO] [stdout] 419 |         if state.parallel() == 0 {
[INFO] [stdout]     |                  ^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `parallel` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:624:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |     pub fn parallel(&self) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 419 |         if state.expect("REASON").parallel() == 0 {
[INFO] [stdout]     |                 +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:420:19
[INFO] [stdout]     |
[INFO] [stdout] 420 |             state.sender.take()
[INFO] [stdout]     |                   ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 420 |             state.unwrap().sender.take()
[INFO] [stdout]     |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:429:18
[INFO] [stdout]     |
[INFO] [stdout] 429 |         if state.segments.len() == 1 {
[INFO] [stdout]     |                  ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 429 |         if state.unwrap().segments.len() == 1 {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:430:19
[INFO] [stdout]     |
[INFO] [stdout] 430 |             state.last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 430 |             state.unwrap().last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:432:26
[INFO] [stdout]     |
[INFO] [stdout] 432 |             return state.segments[0].0.end != u64::MAX;
[INFO] [stdout]     |                          ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 432 |             return state.unwrap().segments[0].0.end != u64::MAX;
[INFO] [stdout]     |                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:434:18
[INFO] [stdout]     |
[INFO] [stdout] 434 |         if state.last_check_time > now {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 434 |         if state.unwrap().last_check_time > now {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:437:15
[INFO] [stdout]     |
[INFO] [stdout] 437 |         state.last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 437 |         state.unwrap().last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `speed` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:438:23
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let s = state.speed();
[INFO] [stdout]     |                       ^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `speed` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:611:5
[INFO] [stdout]     |
[INFO] [stdout] 611 |     pub fn speed(&self) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let s = state.expect("REASON").speed();
[INFO] [stdout]     |                      +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_speed` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:440:23
[INFO] [stdout]     |
[INFO] [stdout] 440 |         if s <= state.last_check_speed as usize {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 440 |         if s <= state.unwrap().last_check_speed as usize {
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_speed` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:444:15
[INFO] [stdout]     |
[INFO] [stdout] 444 |         state.last_check_speed = (s as f64) * PARALLEL_CHECK_SPEED_INCR;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 444 |         state.unwrap().last_check_speed = (s as f64) * PARALLEL_CHECK_SPEED_INCR;
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:451:14
[INFO] [stdout]     |
[INFO] [stdout] 451 |             .segments
[INFO] [stdout]     |              ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 451 |             .unwrap().segments
[INFO] [stdout]     |              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `speed` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:438:23
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let s = state.speed();
[INFO] [stdout]     |                       ^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `speed` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:611:5
[INFO] [stdout]     |
[INFO] [stdout] 611 |     pub fn speed(&self) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let s = state.expect("REASON").speed();
[INFO] [stdout]     |                      +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_speed` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:440:23
[INFO] [stdout]     |
[INFO] [stdout] 440 |         if s <= state.last_check_speed as usize {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 440 |         if s <= state.unwrap().last_check_speed as usize {
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_speed` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:444:15
[INFO] [stdout]     |
[INFO] [stdout] 444 |         state.last_check_speed = (s as f64) * PARALLEL_CHECK_SPEED_INCR;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 444 |         state.unwrap().last_check_speed = (s as f64) * PARALLEL_CHECK_SPEED_INCR;
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:451:14
[INFO] [stdout]     |
[INFO] [stdout] 451 |             .segments
[INFO] [stdout]     |              ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 451 |             .unwrap().segments
[INFO] [stdout]     |              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `len` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:473:38
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let len = { v.lock().len() };
[INFO] [stdout]     |                                      ^^^ method not found in `Result<MutexGuard<'_, Vec<u8>>, PoisonError<MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `len` exists on the type `std::sync::MutexGuard<'_, Vec<u8>>`
[INFO] [stdout]    --> /rustc/158f00a1c5175648af6f6099b075f78d1d014a28/library/alloc/src/vec/mod.rs:2144:5
[INFO] [stdout] help: use the `?` operator to extract the `std::sync::MutexGuard<'_, Vec<u8>>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let len = { v.lock()?.len() };
[INFO] [stdout]     |                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `len` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:473:38
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let len = { v.lock().len() };
[INFO] [stdout]     |                                      ^^^ method not found in `Result<MutexGuard<'_, Vec<u8>>, PoisonError<MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `len` exists on the type `std::sync::MutexGuard<'_, Vec<u8>>`
[INFO] [stdout]    --> /rustc/158f00a1c5175648af6f6099b075f78d1d014a28/library/alloc/src/vec/mod.rs:2144:5
[INFO] [stdout] help: use the `?` operator to extract the `std::sync::MutexGuard<'_, Vec<u8>>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let len = { v.lock()?.len() };
[INFO] [stdout]     |                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]   --> src/tempfile.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |             (data.0, data.1.len())
[INFO] [stdout]    |                   ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]   --> src/tempfile.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |             (data.0, data.1.len())
[INFO] [stdout]    |                           ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]   --> src/tempfile.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |             (data.0, data.1.len())
[INFO] [stdout]    |                   ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]   --> src/tempfile.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |             (data.0, data.1.len())
[INFO] [stdout]    |                           ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 37 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pi_download` (lib) due to 38 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 37 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pi_download` (lib test) due to 38 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f2b1779c626d97345f1de59058a31c9328c91ab5747074404b73d9095ee41ba9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f2b1779c626d97345f1de59058a31c9328c91ab5747074404b73d9095ee41ba9", kill_on_drop: false }`
[INFO] [stdout] f2b1779c626d97345f1de59058a31c9328c91ab5747074404b73d9095ee41ba9
[INFO] checking pi_download-0.2.0 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate pi_download 0.2.0 into /workspace/builds/worker-2-tc2/source
[INFO] validating manifest of crates.io crate pi_download 0.2.0 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate pi_download 0.2.0
[INFO] finished tweaking crates.io crate pi_download 0.2.0
[INFO] tweaked toml for crates.io crate pi_download 0.2.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 09bfc0dab50db5ee56612da099ebcf8aedcb6a366f67e312a3bfef3e15f5854a
[INFO] running `Command { std: "docker" "start" "-a" "09bfc0dab50db5ee56612da099ebcf8aedcb6a366f67e312a3bfef3e15f5854a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "09bfc0dab50db5ee56612da099ebcf8aedcb6a366f67e312a3bfef3e15f5854a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09bfc0dab50db5ee56612da099ebcf8aedcb6a366f67e312a3bfef3e15f5854a", kill_on_drop: false }`
[INFO] [stdout] 09bfc0dab50db5ee56612da099ebcf8aedcb6a366f67e312a3bfef3e15f5854a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b32c2c97c61a7473a2fee2aa4c7ce80a006f88dac721a18bdf97118a28088e99
[INFO] running `Command { std: "docker" "start" "-a" "b32c2c97c61a7473a2fee2aa4c7ce80a006f88dac721a18bdf97118a28088e99", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling ring v0.17.8
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling unicase v2.7.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling rustls v0.21.10
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]    Compiling time-macros v0.2.17
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]     Checking pi_slot_deque v0.2.1
[INFO] [stderr]    Compiling cookie v0.17.0
[INFO] [stderr]     Checking pi_ext_heap v0.1.1
[INFO] [stderr]     Checking pi_slot_wheel v0.2.0
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking brotli-decompressor v2.5.1
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking pi_hash v0.1.1
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking raw-cpuid v11.0.1
[INFO] [stderr]     Checking pi_wheel v0.1.0
[INFO] [stderr]     Checking psl-types v2.0.11
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]     Checking pi_timer v0.1.0
[INFO] [stderr]     Checking publicsuffix v2.2.3
[INFO] [stderr]     Checking backtrace v0.3.69
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking pi_cancel_timer v0.2.0
[INFO] [stderr]     Checking st3 v0.4.1
[INFO] [stderr]     Checking brotli v3.4.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.12
[INFO] [stderr]     Checking crossbeam-queue v0.3.11
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking pi_wrr v0.1.1
[INFO] [stderr]     Checking either v1.10.0
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking quanta v0.12.2
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking pi_share v0.4.15
[INFO] [stderr]     Checking time v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking openssl v0.10.64
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.57
[INFO] [stderr]    Compiling async-stream-impl v0.3.5
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking async-stream v0.3.5
[INFO] [stderr]    Compiling pin-project-internal v1.1.4
[INFO] [stderr]    Compiling ctor v0.2.7
[INFO] [stderr]    Compiling pi_enum_default_macro v0.1.0
[INFO] [stderr]     Checking thiserror v1.0.57
[INFO] [stderr]     Checking pi_time v0.3.4
[INFO] [stderr]     Checking pin-project v1.1.4
[INFO] [stderr]     Checking flume v0.10.14
[INFO] [stderr]     Checking native-tls v0.2.11
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking pi-async-rt v0.1.18
[INFO] [stderr]     Checking pi_async_file v0.5.0
[INFO] [stderr]     Checking pi_rt_file v0.3.0
[INFO] [stderr]     Checking bytes v1.5.0
[INFO] [stderr]     Checking serde_json v1.0.114
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking tokio v1.36.0
[INFO] [stderr]     Checking http v0.2.11
[INFO] [stderr]     Checking cookie_store v0.20.0
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking tokio-util v0.7.10
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking async-compression v0.4.6
[INFO] [stderr]     Checking tokio-socks v0.5.1
[INFO] [stderr]     Checking h2 v0.3.24
[INFO] [stderr]     Checking hyper v0.14.28
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking reqwest v0.11.24
[INFO] [stderr]     Checking pi_async_httpc v0.5.3
[INFO] [stderr]     Checking pi_download v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:375:30
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.segments[0] = (0..size, true);
[INFO] [stdout]     |                              ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:699:20
[INFO] [stdout]     |
[INFO] [stdout] 699 |             return 0..0;
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:702:33
[INFO] [stdout]     |
[INFO] [stdout] 702 |             self.segments.push((0..u64::MAX, true));
[INFO] [stdout]     |                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:703:20
[INFO] [stdout]     |
[INFO] [stdout] 703 |             return 0..u64::MAX;
[INFO] [stdout]     |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:709:18
[INFO] [stdout]     |
[INFO] [stdout] 709 |         for i in 0..self.segments.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:725:20
[INFO] [stdout]     |
[INFO] [stdout] 725 |             return 0..0;
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/utils.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 |         return vec[pos..end].copy_from_slice(buf);
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:375:30
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.segments[0] = (0..size, true);
[INFO] [stdout]     |                              ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:699:20
[INFO] [stdout]     |
[INFO] [stdout] 699 |             return 0..0;
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:702:33
[INFO] [stdout]     |
[INFO] [stdout] 702 |             self.segments.push((0..u64::MAX, true));
[INFO] [stdout]     |                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:703:20
[INFO] [stdout]     |
[INFO] [stdout] 703 |             return 0..u64::MAX;
[INFO] [stdout]     |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:709:18
[INFO] [stdout]     |
[INFO] [stdout] 709 |         for i in 0..self.segments.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:725:20
[INFO] [stdout]     |
[INFO] [stdout] 725 |             return 0..0;
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MultiTaskRuntime`
[INFO] [stdout]    --> src/download.rs:781:9
[INFO] [stdout]     |
[INFO] [stdout] 781 |         MultiTaskRuntime, MultiTaskRuntimeBuilder, StealableTaskPool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicU64`
[INFO] [stdout]    --> src/download.rs:785:9
[INFO] [stdout]     |
[INFO] [stdout] 785 |     use std::sync::atomic::AtomicU64;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime`, `UNIX_EPOCH`
[INFO] [stdout]    --> src/download.rs:790:21
[INFO] [stdout]     |
[INFO] [stdout] 790 |     use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]     |                     ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/utils.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 |         return vec[pos..end].copy_from_slice(buf);
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/download.rs:491:33
[INFO] [stdout]     |
[INFO] [stdout] 491 |                 Ok(mem::replace(&mut vec, vec![]))
[INFO] [stdout]     |                    ------------ ^^^^^^^^ expected `&mut Vec<u8>`, found `&mut Result<..., ...>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Vec<u8>`
[INFO] [stdout]                found mutable reference `&mut Result<std::sync::MutexGuard<'_, Vec<u8>>, PoisonError<std::sync::MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /rustc/b4fc5dbf0bc33be331f9d893db5b3a794f29724a/library/core/src/mem/mod.rs:912:14
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 |             s.sender.take()
[INFO] [stdout]     |               ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 104 |             s.unwrap().sender.take()
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/download.rs:491:33
[INFO] [stdout]     |
[INFO] [stdout] 491 |                 Ok(mem::replace(&mut vec, vec![]))
[INFO] [stdout]     |                    ------------ ^^^^^^^^ expected `&mut Vec<u8>`, found `&mut Result<..., ...>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Vec<u8>`
[INFO] [stdout]                found mutable reference `&mut Result<std::sync::MutexGuard<'_, Vec<u8>>, PoisonError<std::sync::MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /rustc/b4fc5dbf0bc33be331f9d893db5b3a794f29724a/library/core/src/mem/mod.rs:912:14
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:115:18
[INFO] [stdout]     |
[INFO] [stdout] 115 |             if s.sender.is_some() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 115 |             if s.unwrap().sender.is_some() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 |             s.sender.take()
[INFO] [stdout]     |               ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 104 |             s.unwrap().sender.take()
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:119:15
[INFO] [stdout]     |
[INFO] [stdout] 119 |             s.sender = Some(sender);
[INFO] [stdout]     |               ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 119 |             s.unwrap().sender = Some(sender);
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:115:18
[INFO] [stdout]     |
[INFO] [stdout] 115 |             if s.sender.is_some() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 115 |             if s.unwrap().sender.is_some() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:119:15
[INFO] [stdout]     |
[INFO] [stdout] 119 |             s.sender = Some(sender);
[INFO] [stdout]     |               ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 119 |             s.unwrap().sender = Some(sender);
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/download.rs:514:30
[INFO] [stdout]     |
[INFO] [stdout] 514 |                 utils::write(&mut vec, pos as usize, &buf[..buf_len], 0);
[INFO] [stdout]     |                 ------------ ^^^^^^^^ expected `&mut Vec<u8>`, found `&mut Result<..., ...>`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Vec<u8>`
[INFO] [stdout]                found mutable reference `&mut Result<std::sync::MutexGuard<'_, Vec<u8>>, PoisonError<std::sync::MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/utils.rs:3:8
[INFO] [stdout]     |
[INFO] [stdout] 3   | pub fn write<T: Copy>(vec: &mut Vec<T>, pos: usize, buf: &[T], default_value: T){
[INFO] [stdout]     |        ^^^^^          ----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/download.rs:514:30
[INFO] [stdout]     |
[INFO] [stdout] 514 |                 utils::write(&mut vec, pos as usize, &buf[..buf_len], 0);
[INFO] [stdout]     |                 ------------ ^^^^^^^^ expected `&mut Vec<u8>`, found `&mut Result<..., ...>`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Vec<u8>`
[INFO] [stdout]                found mutable reference `&mut Result<std::sync::MutexGuard<'_, Vec<u8>>, PoisonError<std::sync::MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/utils.rs:3:8
[INFO] [stdout]     |
[INFO] [stdout] 3   | pub fn write<T: Copy>(vec: &mut Vec<T>, pos: usize, buf: &[T], default_value: T){
[INFO] [stdout]     |        ^^^^^          ----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 |             if data.1.len() == 0 {
[INFO] [stdout]     |                     ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:123:22
[INFO] [stdout]     |
[INFO] [stdout] 123 |                 data.0 = pos;
[INFO] [stdout]     |                      ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 |             if data.1.len() == 0 {
[INFO] [stdout]     |                     ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:124:40
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 utils::write(&mut data.1, 0, &buf[..len], 0);
[INFO] [stdout]     |                                        ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:123:22
[INFO] [stdout]     |
[INFO] [stdout] 123 |                 data.0 = pos;
[INFO] [stdout]     |                      ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:124:40
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 utils::write(&mut data.1, 0, &buf[..len], 0);
[INFO] [stdout]     |                                        ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:125:34
[INFO] [stdout]     |
[INFO] [stdout] 125 |             }else if pos >= data.0 { //  && (pos + len as u64) < self.data_limit
[INFO] [stdout]     |                                  ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:125:34
[INFO] [stdout]     |
[INFO] [stdout] 125 |             }else if pos >= data.0 { //  && (pos + len as u64) < self.data_limit
[INFO] [stdout]     |                                  ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:127:39
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let pos = (pos - data.0) as usize;
[INFO] [stdout]     |                                       ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:127:39
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let pos = (pos - data.0) as usize;
[INFO] [stdout]     |                                       ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:128:40
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 utils::write(&mut data.1, pos, &buf[..len], 0);
[INFO] [stdout]     |                                        ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:128:40
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 utils::write(&mut data.1, pos, &buf[..len], 0);
[INFO] [stdout]     |                                        ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:157:17
[INFO] [stdout]     |
[INFO] [stdout] 157 |         if data.0 == 0 && data.1.len() as u64 == meta.len() {
[INFO] [stdout]     |                 ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:157:17
[INFO] [stdout]     |
[INFO] [stdout] 157 |         if data.0 == 0 && data.1.len() as u64 == meta.len() {
[INFO] [stdout]     |                 ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:157:32
[INFO] [stdout]     |
[INFO] [stdout] 157 |         if data.0 == 0 && data.1.len() as u64 == meta.len() {
[INFO] [stdout]     |                                ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:157:32
[INFO] [stdout]     |
[INFO] [stdout] 157 |         if data.0 == 0 && data.1.len() as u64 == meta.len() {
[INFO] [stdout]     |                                ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:158:46
[INFO] [stdout]     |
[INFO] [stdout] 158 |             return Ok(mem::replace(&mut data.1, vec![]))
[INFO] [stdout]     |                                              ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]    --> src/tempfile.rs:158:46
[INFO] [stdout]     |
[INFO] [stdout] 158 |             return Ok(mem::replace(&mut data.1, vec![]))
[INFO] [stdout]     |                                              ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `clone` exists for enum `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/download.rs:93:27
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.state.lock().clone()
[INFO] [stdout]    |                           ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::sync::MutexGuard<'_, download::State>: Clone`
[INFO] [stdout]            which is required by `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>: Clone`
[INFO] [stdout]            `PoisonError<std::sync::MutexGuard<'_, download::State>>: Clone`
[INFO] [stdout]            which is required by `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>: Clone`
[INFO] [stdout] note: the method `clone` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]   --> /rustc/b4fc5dbf0bc33be331f9d893db5b3a794f29724a/library/core/src/clone.rs:160:5
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.state.lock().expect("REASON").clone()
[INFO] [stdout]    |                          +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `clone` exists for enum `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/download.rs:93:27
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.state.lock().clone()
[INFO] [stdout]    |                           ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::sync::MutexGuard<'_, download::State>: Clone`
[INFO] [stdout]            which is required by `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>: Clone`
[INFO] [stdout]            `PoisonError<std::sync::MutexGuard<'_, download::State>>: Clone`
[INFO] [stdout]            which is required by `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>: Clone`
[INFO] [stdout] note: the method `clone` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]   --> /rustc/b4fc5dbf0bc33be331f9d893db5b3a794f29724a/library/core/src/clone.rs:160:5
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.state.lock().expect("REASON").clone()
[INFO] [stdout]    |                          +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:375:15
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.segments[0] = (0..size, true);
[INFO] [stdout]     |               ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.unwrap().segments[0] = (0..size, true);
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:375:15
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.segments[0] = (0..size, true);
[INFO] [stdout]     |               ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 375 |         state.unwrap().segments[0] = (0..size, true);
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `file_size` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:380:15
[INFO] [stdout]     |
[INFO] [stdout] 380 |         state.file_size()
[INFO] [stdout]     |               ^^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `file_size` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 634 |     pub fn file_size(&self) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 380 |         state.expect("REASON").file_size()
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `file_size` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:380:15
[INFO] [stdout]     |
[INFO] [stdout] 380 |         state.file_size()
[INFO] [stdout]     |               ^^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `file_size` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 634 |     pub fn file_size(&self) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 380 |         state.expect("REASON").file_size()
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_range` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:385:15
[INFO] [stdout]     |
[INFO] [stdout] 385 |         state.get_range(self.info.parallel_size)
[INFO] [stdout]     |               ^^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `get_range` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:696:5
[INFO] [stdout]     |
[INFO] [stdout] 696 |     fn get_range(&mut self, parallel_size: usize) -> Range<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 385 |         state.expect("REASON").get_range(self.info.parallel_size)
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_range` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:385:15
[INFO] [stdout]     |
[INFO] [stdout] 385 |         state.get_range(self.info.parallel_size)
[INFO] [stdout]     |               ^^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `get_range` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:696:5
[INFO] [stdout]     |
[INFO] [stdout] 696 |     fn get_range(&mut self, parallel_size: usize) -> Range<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 385 |         state.expect("REASON").get_range(self.info.parallel_size)
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:390:18
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if state.sender.is_none() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if state.unwrap().sender.is_none() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:390:18
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if state.sender.is_none() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if state.unwrap().sender.is_none() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `down_err` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:394:30
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let parallel = state.down_err(r);
[INFO] [stdout]     |                              ^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `down_err` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:641:5
[INFO] [stdout]     |
[INFO] [stdout] 641 |     fn down_err(&mut self, r: &Range<u64>) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let parallel = state.expect("REASON").down_err(r);
[INFO] [stdout]     |                             +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `down_err` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:394:30
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let parallel = state.down_err(r);
[INFO] [stdout]     |                              ^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `down_err` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:641:5
[INFO] [stdout]     |
[INFO] [stdout] 641 |     fn down_err(&mut self, r: &Range<u64>) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let parallel = state.expect("REASON").down_err(r);
[INFO] [stdout]     |                             +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 state.sender.take()
[INFO] [stdout]     |                       ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 state.unwrap().sender.take()
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 state.sender.take()
[INFO] [stdout]     |                       ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 state.unwrap().sender.take()
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:411:18
[INFO] [stdout]     |
[INFO] [stdout] 411 |         if state.sender.is_none() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 411 |         if state.unwrap().sender.is_none() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:411:18
[INFO] [stdout]     |
[INFO] [stdout] 411 |         if state.sender.is_none() {
[INFO] [stdout]     |                  ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 411 |         if state.unwrap().sender.is_none() {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `down_ok` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:414:15
[INFO] [stdout]     |
[INFO] [stdout] 414 |         state.down_ok(r, data_len, now_millisecond() - self.start_time_ms)
[INFO] [stdout]     |               ^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `down_ok` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:655:5
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn down_ok(&mut self, r: &Range<u64>, data_len: usize, duration: u64) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 414 |         state.expect("REASON").down_ok(r, data_len, now_millisecond() - self.start_time_ms)
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `down_ok` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:414:15
[INFO] [stdout]     |
[INFO] [stdout] 414 |         state.down_ok(r, data_len, now_millisecond() - self.start_time_ms)
[INFO] [stdout]     |               ^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `down_ok` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:655:5
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn down_ok(&mut self, r: &Range<u64>, data_len: usize, duration: u64) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 414 |         state.expect("REASON").down_ok(r, data_len, now_millisecond() - self.start_time_ms)
[INFO] [stdout]     |              +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parallel` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:419:18
[INFO] [stdout]     |
[INFO] [stdout] 419 |         if state.parallel() == 0 {
[INFO] [stdout]     |                  ^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `parallel` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:624:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |     pub fn parallel(&self) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 419 |         if state.expect("REASON").parallel() == 0 {
[INFO] [stdout]     |                 +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:420:19
[INFO] [stdout]     |
[INFO] [stdout] 420 |             state.sender.take()
[INFO] [stdout]     |                   ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 420 |             state.unwrap().sender.take()
[INFO] [stdout]     |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:429:18
[INFO] [stdout]     |
[INFO] [stdout] 429 |         if state.segments.len() == 1 {
[INFO] [stdout]     |                  ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 429 |         if state.unwrap().segments.len() == 1 {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parallel` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:419:18
[INFO] [stdout]     |
[INFO] [stdout] 419 |         if state.parallel() == 0 {
[INFO] [stdout]     |                  ^^^^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `parallel` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:624:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |     pub fn parallel(&self) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 419 |         if state.expect("REASON").parallel() == 0 {
[INFO] [stdout]     |                 +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `sender` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:420:19
[INFO] [stdout]     |
[INFO] [stdout] 420 |             state.sender.take()
[INFO] [stdout]     |                   ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 420 |             state.unwrap().sender.take()
[INFO] [stdout]     |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:430:19
[INFO] [stdout]     |
[INFO] [stdout] 430 |             state.last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 430 |             state.unwrap().last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:432:26
[INFO] [stdout]     |
[INFO] [stdout] 432 |             return state.segments[0].0.end != u64::MAX;
[INFO] [stdout]     |                          ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 432 |             return state.unwrap().segments[0].0.end != u64::MAX;
[INFO] [stdout]     |                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:429:18
[INFO] [stdout]     |
[INFO] [stdout] 429 |         if state.segments.len() == 1 {
[INFO] [stdout]     |                  ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 429 |         if state.unwrap().segments.len() == 1 {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:434:18
[INFO] [stdout]     |
[INFO] [stdout] 434 |         if state.last_check_time > now {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 434 |         if state.unwrap().last_check_time > now {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:430:19
[INFO] [stdout]     |
[INFO] [stdout] 430 |             state.last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 430 |             state.unwrap().last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:437:15
[INFO] [stdout]     |
[INFO] [stdout] 437 |         state.last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 437 |         state.unwrap().last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:432:26
[INFO] [stdout]     |
[INFO] [stdout] 432 |             return state.segments[0].0.end != u64::MAX;
[INFO] [stdout]     |                          ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 432 |             return state.unwrap().segments[0].0.end != u64::MAX;
[INFO] [stdout]     |                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:434:18
[INFO] [stdout]     |
[INFO] [stdout] 434 |         if state.last_check_time > now {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 434 |         if state.unwrap().last_check_time > now {
[INFO] [stdout]     |                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_time` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:437:15
[INFO] [stdout]     |
[INFO] [stdout] 437 |         state.last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 437 |         state.unwrap().last_check_time = now + PARALLEL_CHECK_INTERVAL;
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `speed` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:438:23
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let s = state.speed();
[INFO] [stdout]     |                       ^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `speed` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:611:5
[INFO] [stdout]     |
[INFO] [stdout] 611 |     pub fn speed(&self) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let s = state.expect("REASON").speed();
[INFO] [stdout]     |                      +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_speed` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:440:23
[INFO] [stdout]     |
[INFO] [stdout] 440 |         if s <= state.last_check_speed as usize {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 440 |         if s <= state.unwrap().last_check_speed as usize {
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_speed` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:444:15
[INFO] [stdout]     |
[INFO] [stdout] 444 |         state.last_check_speed = (s as f64) * PARALLEL_CHECK_SPEED_INCR;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 444 |         state.unwrap().last_check_speed = (s as f64) * PARALLEL_CHECK_SPEED_INCR;
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:451:14
[INFO] [stdout]     |
[INFO] [stdout] 451 |             .segments
[INFO] [stdout]     |              ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 451 |             .unwrap().segments
[INFO] [stdout]     |              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `speed` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:438:23
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let s = state.speed();
[INFO] [stdout]     |                       ^^^^^ method not found in `Result<MutexGuard<'_, State>, PoisonError<MutexGuard<'_, State>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `speed` exists on the type `std::sync::MutexGuard<'_, download::State>`
[INFO] [stdout]    --> src/download.rs:611:5
[INFO] [stdout]     |
[INFO] [stdout] 611 |     pub fn speed(&self) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `std::sync::MutexGuard<'_, download::State>` value, panicking if the value is a `Result::Err`
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let s = state.expect("REASON").speed();
[INFO] [stdout]     |                      +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_speed` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:440:23
[INFO] [stdout]     |
[INFO] [stdout] 440 |         if s <= state.last_check_speed as usize {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 440 |         if s <= state.unwrap().last_check_speed as usize {
[INFO] [stdout]     |                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `last_check_speed` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:444:15
[INFO] [stdout]     |
[INFO] [stdout] 444 |         state.last_check_speed = (s as f64) * PARALLEL_CHECK_SPEED_INCR;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 444 |         state.unwrap().last_check_speed = (s as f64) * PARALLEL_CHECK_SPEED_INCR;
[INFO] [stdout]     |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `segments` on type `Result<std::sync::MutexGuard<'_, download::State>, PoisonError<std::sync::MutexGuard<'_, download::State>>>`
[INFO] [stdout]    --> src/download.rs:451:14
[INFO] [stdout]     |
[INFO] [stdout] 451 |             .segments
[INFO] [stdout]     |              ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 451 |             .unwrap().segments
[INFO] [stdout]     |              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `len` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:473:38
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let len = { v.lock().len() };
[INFO] [stdout]     |                                      ^^^ method not found in `Result<MutexGuard<'_, Vec<u8>>, PoisonError<MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `len` exists on the type `std::sync::MutexGuard<'_, Vec<u8>>`
[INFO] [stdout]    --> /rustc/b4fc5dbf0bc33be331f9d893db5b3a794f29724a/library/alloc/src/vec/mod.rs:2144:5
[INFO] [stdout] help: use the `?` operator to extract the `std::sync::MutexGuard<'_, Vec<u8>>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let len = { v.lock()?.len() };
[INFO] [stdout]     |                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `len` found for enum `Result` in the current scope
[INFO] [stdout]    --> src/download.rs:473:38
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let len = { v.lock().len() };
[INFO] [stdout]     |                                      ^^^ method not found in `Result<MutexGuard<'_, Vec<u8>>, PoisonError<MutexGuard<'_, Vec<u8>>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: the method `len` exists on the type `std::sync::MutexGuard<'_, Vec<u8>>`
[INFO] [stdout]    --> /rustc/b4fc5dbf0bc33be331f9d893db5b3a794f29724a/library/alloc/src/vec/mod.rs:2144:5
[INFO] [stdout] help: use the `?` operator to extract the `std::sync::MutexGuard<'_, Vec<u8>>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let len = { v.lock()?.len() };
[INFO] [stdout]     |                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]   --> src/tempfile.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |             (data.0, data.1.len())
[INFO] [stdout]    |                   ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]   --> src/tempfile.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |             (data.0, data.1.len())
[INFO] [stdout]    |                           ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]   --> src/tempfile.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |             (data.0, data.1.len())
[INFO] [stdout]    |                   ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `1` on type `Result<std::sync::MutexGuard<'_, (u64, Vec<u8>)>, PoisonError<std::sync::MutexGuard<'_, (u64, Vec<u8>)>>>`
[INFO] [stdout]   --> src/tempfile.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |             (data.0, data.1.len())
[INFO] [stdout]    |                           ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 37 previous errors; 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pi_download` (lib) due to 38 previous errors; 7 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 37 previous errors; 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pi_download` (lib test) due to 38 previous errors; 10 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "b32c2c97c61a7473a2fee2aa4c7ce80a006f88dac721a18bdf97118a28088e99", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b32c2c97c61a7473a2fee2aa4c7ce80a006f88dac721a18bdf97118a28088e99", kill_on_drop: false }`
[INFO] [stdout] b32c2c97c61a7473a2fee2aa4c7ce80a006f88dac721a18bdf97118a28088e99
